export interface Detail {
  code: number;
  data: Data;
  value: string;
}

export interface Data {
  addressChanged: boolean;
  addressConfirmRemind: boolean;
  aiyigeApplication: null;
  auditMsg: string[];
  auditor: null;
  auditorName: null;
  auditStatus: null;
  auditTime: null;
  categoryId: null;
  channel: string;
  cityId: null;
  cityName: null;
  classification: string;
  commodityBackup: CommodityBackup;
  content: Content[];
  courseEnded: null;
  cover: string[];
  createTime: number;
  creator: string;
  creatorBackup: DataCreatorBackup;
  depositAmount: number;
  detailBackup: DetailBackup;
  divisionBackup: null;
  editHighestVersion: null;
  enclosureCount: number;
  enclosures: string[];
  esid: null;
  esidBackup: null;
  esSyncStatus: null;
  favorableValue: number;
  first: boolean;
  forceUpdate: number;
  freshnessDegree: null;
  hasLiveBroadcast: number;
  id: string;
  imageTitleBackup: null;
  initExposureNum: null;
  inventoryBackup: null;
  last: boolean;
  letBuy: null;
  likabilityDegree: null;
  liveBroadcast: null;
  liveBroadcastTitles: string[];
  mediaSummary: DataMediaSummary;
  mineBackup: MineBackup;
  momentClassificationBackup: DataMomentClassificationBackup;
  moreBackup: DataMoreBackup;
  num: null;
  number: number;
  numberOfElements: number;
  onSalesBackup: null;
  onsellTime: number;
  onsellUpdateTime: number;
  priorityDisplay: null;
  priorityDisplayTime: null;
  processTime: null;
  rand: null;
  recDegree: null;
  recentFavorableValue: number;
  recommendActivityAndTopic: string[];
  recommendMineBackup: RecommendMineBackup[];
  recommendOtherBackup: RecommendOtherBackup[];
  relevancyAvocations: string[];
  remark: null;
  repeatRequest: null;
  requireBackup: RequireBackup[];
  router: string;
  securityAuditResult: null;
  securityStatus: number;
  shelfTime: null;
  size: string;
  sort: null;
  statisticsBackup: DataStatisticsBackup;
  status: string;
  studyProgressBackup: string[];
  subject: string;
  subjectTag: null;
  summary: null;
  tags: DataTag[];
  targetStatus: null;
  ticket: null;
  title: string;
  topicQuoteInfos: string[];
  totalPages: number;
  updateTime: null;
  version: number;
  vipTag: null;
  vipTitleBackup: null;
  visiblePermissions: string;
  webUrl: string;
  wordFilterStatus: string;
}

export interface CommodityBackup {
  commissionAmount: null;
  commissionRate: null;
  commissionType: null;
  originPrice: string;
  price: string;
  showLinePrice: boolean;
  unitPrice: string;
}

export interface Content {
  aiyigeApplication: string;
  algorithmSortValue: number;
  avocationTags: AvocationTag[];
  channel: string;
  cityId: string;
  cityName: string;
  cover: string[];
  createTime: number;
  creator: string;
  creatorBackup: ContentCreatorBackup;
  difficultDegreeValue: number;
  editHighestVersion: string;
  enclosureCount: number;
  id: string;
  initExposureNum: number;
  mediaSummary: ContentMediaSummary;
  momentClassificationBackup: ContentMomentClassificationBackup;
  moreBackup: ContentMoreBackup;
  needPromotion: number;
  notVipPromotion: number;
  num: number;
  onsellTime: number;
  onsellUpdateTime: number;
  popTrainingIndex: number;
  recDegree: number;
  router: string;
  statisticsBackup: ContentStatisticsBackup;
  status: string;
  subject: string;
  tags: ContentTag[];
  title: string;
  updateTime: number;
  version: number;
  vipPromotion: number;
}

export interface AvocationTag {
  id: string;
  label: string;
  name: string;
}

export interface ContentCreatorBackup {
  avatar: string;
  certificationType?: string;
  id: string;
  level: number;
  name: string;
  sellerFavorableValue?: number;
  type?: string;
  vipExpireTime?: number;
  vipGrade: number;
}

export interface ContentMediaSummary {
  count: number;
  duration: number;
}

export interface ContentMomentClassificationBackup {
  classification: string;
  originalStatement?: number;
  originAuthor?: string;
  originSource?: string;
  workTitle: string;
}

export interface ContentMoreBackup {
  totalDuration: number;
  videoCount: number;
  videos: PurpleVideo[];
}

export interface PurpleVideo {
  audioExtracted: boolean;
  buyed: boolean;
  canPreview: boolean;
  cover: string;
  downloaded: boolean;
  duration: number;
  free: number | string;
  hlsUrl: string;
  index: number;
  itemType: number;
  notNulUrl: string;
  originUrl: string;
  originVideoMd5: string;
  persistentId: string;
  sectionNum?: string;
  selected: boolean;
  size: number;
  sortNum: number;
  title: string;
  url: string;
}

export interface ContentStatisticsBackup {
  actualSellCount: number;
  commentCount: number;
  enquiryCount: number;
  exposureCount: number;
  favoriteCount: number;
  liveStatus: number;
  lockCount: number;
  playBackDuration: number;
  praiseCount: number;
  requireAccessoryCount: number;
  requireLiveCourseCount: number;
  requireMajorCourseCount: number;
  requireMusicCount: number;
  requireVideoCourseCount: number;
  reviewCount: number;
  sellAmount: number;
  sellCount: number;
  shareAmount: number;
  shareCount: number;
  signupCount: number;
  studentCount: number;
  userCacheCount: number;
  viewCount: number;
}

export interface ContentTag {
  groupType: string;
  id: string;
  name: string;
}

export interface DataCreatorBackup {
  accid: string;
  avatar: string;
  certificationType: null;
  id: string;
  level: number;
  mobile: null;
  name: string;
  recentSellerFavorableValue: number;
  recomFactor: null;
  recomFactorExpireTime: null;
  sellerFavorableValue: number;
  type: null;
  vipExpireTime: null;
  vipGrade: number;
}

export interface DetailBackup {
  content: string[];
  guarantee: string[];
}

export interface DataMediaSummary {
  count: number;
  duration: number;
}

export interface MineBackup {
  accessoryRequired: number;
  buyed: number;
  commented: number;
  favoriteId: null;
  iosDeviceVip: number;
  letInLiveCourse: number;
  liveCourseRequired: number;
  majorCourseRequired: number;
  musicRequired: number;
  mutualFollower: null;
  praiseId: null;
  resourceFrom: null;
  roomRole: null;
  userFollowId: null;
  videoCourseRequired: number;
}

export interface DataMomentClassificationBackup {
  classification: string;
  originalStatement: number;
  originAuthor: string;
  originSource: string;
  workTitle: string;
}

export interface DataMoreBackup {
  allowExtractAudio: number;
  totalDuration: number;
  videoCount: number;
  videos: FluffyVideo[];
}

export interface FluffyVideo {
  cover?: string;
  duration?: number;
  free?: number;
  hlsUrl?: string;
  originUrl?: string;
  size?: number;
  sortNum?: number;
  title?: string;
  url?: string;
}

export interface RecommendMineBackup {
  cover: string[];
  editHighestVersion: string;
  id: string;
  momentClassificationBackup: RecommendMineBackupMomentClassificationBackup;
  router: string;
  statisticsBackup: RecommendMineBackupStatisticsBackup;
  subject: string;
  title: string;
}

export interface RecommendMineBackupMomentClassificationBackup {
  classification: string;
  originalStatement?: number;
  originAuthor?: string;
  originSource?: string;
  workTitle: string;
}

export interface RecommendMineBackupStatisticsBackup {
  actualSellCount: number;
  commentCount: number;
  enquiryCount: number;
  exposureCount: number;
  favoriteCount: number;
  liveStatus: number;
  lockCount: number;
  playBackDuration: number;
  praiseCount: number;
  requireAccessoryCount: number;
  requireLiveCourseCount: number;
  requireMajorCourseCount: number;
  requireMusicCount: number;
  requireVideoCourseCount: number;
  reviewCount: number;
  sellAmount: number;
  sellCount: number;
  shareAmount: number;
  shareCount: number;
  signupCount: number;
  studentCount: number;
  userCacheCount: number;
  viewCount: number;
}

export interface RecommendOtherBackup {
  cover: string[];
  editHighestVersion: string;
  id: string;
  inventoryBackup: InventoryBackup;
  momentClassificationBackup: RecommendOtherBackupMomentClassificationBackup;
  router: string;
  statisticsBackup: RecommendOtherBackupStatisticsBackup;
  subject: string;
  title: string;
}

export interface InventoryBackup {
  availableInventory: number;
  lockedInventory: number;
  orderOccupiedInventory: number;
  selledInventory: number;
  total: number;
  virtualInventory: number;
}

export interface RecommendOtherBackupMomentClassificationBackup {
  classification: string;
  originalStatement?: number;
  workTitle: string;
}

export interface RecommendOtherBackupStatisticsBackup {
  actualSellCount: number;
  commentCount: number;
  enquiryCount: number;
  exposureCount: number;
  favoriteCount: number;
  liveStatus: number;
  lockCount: number;
  playBackDuration: number;
  praiseCount: number;
  requireAccessoryCount: number;
  requireLiveCourseCount: number;
  requireMajorCourseCount: number;
  requireMusicCount: number;
  requireVideoCourseCount: number;
  reviewCount: number;
  sellAmount: number | string;
  sellCount: number;
  shareAmount: number | string;
  shareCount: number;
  signupCount: number;
  studentCount: number;
  userCacheCount: number;
  viewCount: number;
}

export interface RequireBackup {
  requireDesc: string;
  requireType: string;
}

export interface DataStatisticsBackup {
  actualSellCount: number;
  commentCount: number;
  enquiryCount: number;
  exposureCount: number;
  favoriteCount: number;
  liveStatus: number;
  lockCount: number;
  playBackDuration: number;
  praiseCount: number;
  requireAccessoryCount: number;
  requireLiveCourseCount: number;
  requireMajorCourseCount: number;
  requireMusicCount: number;
  requireVideoCourseCount: number;
  reviewCount: number;
  sellAmount: number;
  sellCount: number;
  shareAmount: number;
  shareCount: number;
  signupCount: number;
  studentCount: number;
  userCacheCount: number;
  viewCount: number;
}

export interface DataTag {
  groupType: string;
  id: string;
  name: string;
}